{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Helper Functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def compute_cost(x, y, w, b):\n",
    "  m = x.shape[0]\n",
    "  j_wb = 0\n",
    "  for i in range(m):\n",
    "    f_wb = w*x[i] + b\n",
    "    j_wb += (f_wb - y[i]) ** 2\n",
    "  \n",
    "  j_wb = j_wb * (1/2*m)\n",
    "\n",
    "  return j_wb\n",
    "\n",
    "def linear_regression_line(df, w, b):\n",
    "  m=df.shape[0]\n",
    "  f_wb = np.zeros(m)\n",
    "  for i in range(m):\n",
    "    f_wb[i] = w*df['YearsExperience'][i] + b\n",
    "\n",
    "  return f_wb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.read_csv('Salary_dataset.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>YearsExperience</th>\n",
       "      <th>Salary</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1.2</td>\n",
       "      <td>39344.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>1.4</td>\n",
       "      <td>46206.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>1.6</td>\n",
       "      <td>37732.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>2.1</td>\n",
       "      <td>43526.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>2.3</td>\n",
       "      <td>39892.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0  YearsExperience   Salary\n",
       "0           0              1.2  39344.0\n",
       "1           1              1.4  46206.0\n",
       "2           2              1.6  37732.0\n",
       "3           3              2.1  43526.0\n",
       "4           4              2.3  39892.0"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "cost = np.zeros(df.shape[0])\n",
    "w = np.linspace(1000, 2000, df.shape[0]) #creates array of size 5 of numbers between 0 and 400, with all numbers being equally spaced\n",
    "b = np.linspace(1000, 2000, df.shape[0])\n",
    "i = 0\n",
    "for i in range (len(w)):\n",
    "  cost[i] = compute_cost(df['YearsExperience'], df['Salary'], w[i], b[i])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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TEbps/odzDAMjRw5UidPnqzyqbpff/21+vXrp4yMDF177bWaPXu2Nm7cqJycnArXz549W3PmzCm3PSEhQZdddpmtym8yLl68qJUrV2r79u3Vrn3yySfVt29fO1QFAEDVzp07p3HjxqmwsFB+fn5Vrm004SY2NlYffPCBMjMzFRwcXOGa4uJi9enTR3/605/05z//WZKqDTcVnbkJCQnRiRMnqm1ObVksFqWkpCg6Olqenp42PbatrVq1Sg899FCl+00mk9q3b6+vv/660X1F1ZT63JTRZ/ugz/ZDr+2jofpcVFSk1q1b1yjcNIqvpeLj47V582alp6dXGmwk6fTp0/r000+VnZ2tuLg4SVJJSYkMw5CHh4e2bdumW265pcx7vL29Kxww6enp2WA/3A15bFvp1KlTlfsNw1BeXp727NmjyMhI+xRVS02hz86APtsHfbYfem0ftu5zbY7l0HBjGIbi4+OVlJQks9msDh06VLnez8+v3APpXnvtNe3YsUPr16+v9v34FbOpAADOyqHhJjY2VgkJCdq0aZN8fX117NgxSZK/v798fHwkSTNnzlR+fr7efvttubm5qXPnzmWOERAQoGbNmpXbjqoxmwoA4Kwc+pyb5cuXq7CwUJGRkQoMDLT+effdd61rCgoKdOTIEQdW6ZxqMpuqdevWioiIsGNVAADUn0PDjWEYFf6ZNGmSdc2aNWtkNpsrPcbs2bMrvZgYlavJbKoTJ05o7ty5Ki4utmdpAADUC7OlXFhls6mCg4M1ePBgSdLcuXM1dOhQnThxwhElAgBQa4QbF1fRbKrDhw9r69atWrt2rXx8fLRt2zZ1795dn3zyiaPLBQCgWo3iVnA4Vulsqt8bP368unbtqtGjR1sfnrh06VL9+c9/rvJaHQAAHIkzN6hSly5d9OmnnyomJkYWi0VTp07VxIkTrcNNi4uLZTablZiYKLPZzPU5AACHI9ygWn5+flq/fr0WLVokd3d3rV27Vn369NGyZcsUGhqqqKgojRs3TlFRUQoNDdWGDRscXTIAwIURblAjJpNJM2bM0I4dO9SuXTt9/vnnio+PV15eXpl1+fn5uuOOOwg4AACHIdygVvr376+9e/fKy8urwv2lo8oeffRRvqICADgE4Qa19s033+jixYuV7jcMQ99//32V090BAGgohBvUGnOpAACNGeEGtcZcKgBA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799fERERCgoK0p/+9CedO3fO1jUCcHGl4xvat29fZntwcLBiYmIkScuXL1efPn301VdfOaJEAI1IncLN9OnTlZaWpi1btujUqVM6deqUNm3apLS0NM2YMcPWNQKAYmJidPjwYaWmpiohIUGpqak6fPiw3n//fSUnJ6tNmzbav3+/brrpJiUkJDi6XAAOVKdrbt5//32tX7++zGPUhw4dKh8fH911111avny5reoDAKvKxjcMGjRIOTk5Gj9+vMxms8aPH6/U1FQtXbqU6wABF1SnMzfnzp1T27Zty20PCAjgaykADhEUFKTt27fr2Weflclk0t///nf17t1bhw4dkvTLXCqz2azExESZzWYe+gc4sTqFm759+2rWrFllLt47f/685syZo759+9qsOACoDXd3d82ZM0fbt29X27Zt9fnnn6tHjx6Kj49nLhXgQur0tdSSJUs0ZMgQBQcHq1u3bjKZTMrJyZG3t7e2bdtm6xoBoFZuueUW7d+/X/fcc4+2b9+uZcuWlVtTOpdq/fr11ouSATiHOp256dKli77++mvNnz9fYWFh6tq1qxYsWKBvvvlGN954o61rBIBaa9u2rT744AP5+flVuJ+5VIDzqtOZm/nz56tt27Z64IEHymx/8803dfz4cT355JM2KQ4A6mPXrl0qKiqqdP9v51JVdKEygKapTmduXn/9dXXq1Knc9tKZUwDQGDCXCnBNdQo3x44dq3COS5s2bfiPBIBGg7lUgGuqU7gJCQnRzp07y23fuXOngoKC6l0UANhC6VyqysY2lDpw4EClc6sAND11Cjf333+/Hn30Ua1evVrfffedvvvuO7355puaNm1auetwAMBRqppL9dvXjzzyiEaPHq2TJ0/atT4ADaNO4eaJJ57Qn/70J02dOlUdO3ZUx44dFR8fr4cfflgzZ86s8XHmz5+vnj17ytfXVwEBARo1apS+/PLLKt+zYcMGRUdHq02bNvLz81Pfvn310Ucf1eVjAHABVc2lWr9+vZYuXSpPT08lJSUpPDxcH3/8sYMqBWArdQo3JpNJCxcu1PHjx7Vnzx7t379fP/30k5599tlaHSctLU2xsbHas2ePUlJSdOnSJQ0cOFBnz56t9D3p6emKjo7Whx9+qKysLEVFRWn48OHKzs6uy0cB4AIqmkuVm5ur0aNH6+GHH9auXbvUsWNHfffdd+rX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gw8+qG3btmnlypVq0aKFiouLrbeWBwYGKiIiwjrbCqgKZ24AAA7Trl07bd26VS+88II8PDy0fv16hYWFad68eQoNDWV8A+qEcAMAcCg3Nzc99thj2rVrl66++modOXJETz/9tPLy8sqsY3wDaopwAwBoFHr27KlPP/2U8Q2oN8INAKDRyMnJ0blz5yrdz/gG1AThBgDQaDC+Abbg0HAzf/589ezZU76+vgoICNCoUaP05ZdfVvmegoICjRs3Ttddd53c3Nz06KOP2qdYAECDq+n4hpqug2tyaLhJS0tTbGys9uzZo5SUFF26dEkDBw7U2bNnK33PhQsX1KZNGz399NPq1q2bHasFADS0mo5v+M9//sMzcVAph4ab5ORkTZo0STfeeKO6deum1atX68iRI8rKyqr0PaGhoVq6dKkmTpwof39/O1YLAGho1Y1vKBUXF6eYmBj9+OOPdq0PTUOjeohfYWGhJKlly5Y2O+aFCxd04cIF6+uioiJJksVikcVisdnfU3rM3/5fNAz6bB/02T7oc3nDhw/XO++8o+nTpys/P9+6vX379lq0aJHy8vI0c+ZMbdy4UXv37tVbb72l/v37V3tcem0fDdXn2hzPZDSS83qGYWjkyJE6efJkja+Cj4yMVFhYmJYsWVLpmtmzZ2vOnDnltickJFR6uyEAwPGKi4t18OBBnTx5Ui1atNANN9xgfULx//7v/2rRokU6evSoTCaT7rzzTo0ZM4YnGDuxc+fOady4cSosLJSfn1+VaxtNuImNjdUHH3ygzMxMBQcH1+g9NQk3FZ25CQkJ0YkTJ6ptTm1ZLBalpKQoOjpanp6eNj02fkWf7YM+2wd9rrszZ85o+vTpWrNmjSSpb9++euuttxQaGirpl3CUmZlpHd/Qu3dv7dixg143sIb6mS4qKlLr1q1rFG4axddS8fHx2rx5s9LT02scbGrK29tb3t7e5bZ7eno22A93Qx4bv6LP9kGf7YM+116LFi20evVqDR48WA8++KB2796tnj176vXXX5enp6ceeeSRMk85bt++ve655x4NHTqUXtuBrX+ma3Msh15QbBiG4uLitGHDBu3YsUMdOnRwZDkAgCZozJgx2r9/v/r27avCwkLdfffdGj16dLnxDUePHtXChQuVlJTkoEphLw4NN7GxsVq7dq0SEhLk6+urY8eO6dixYzp//rx1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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 6000x6000 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(w, cost, color='black', marker='o')\n",
    "plt.xlabel('w')\n",
    "plt.ylabel('cost')\n",
    "plt.title(\"Cost\")\n",
    "plt.grid(True)\n",
    "plt.figure(figsize=(60, 60))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "line = linear_regression_line(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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H69FRETUDDFYURlFqT44Ncb1BomIiKyAY6yIiIiINMJgRURERKQRBisiIiIijTBYEREREWmEwYqIiIhIIwxWRERERBphsCIiIiLSCIMVERERkUYYrIiIiIg0wmBFREREpBEGKyIiIiKNMFgRERERaYTBioiIiEgjDFZEREREGmGwIiIiItIIgxURERGRRhisiIiIiDTCYEVERESkEQYrIiIiIo0wWBERERFphMGKiIiISCMMVkREREQaYbAiIiIi0giDFREREZFGGKyIiIiINMJgRURERKQRBisiIiIijTBYEREREWmEwYqIiIhIIwxWRERERBphsCIiIiLSCIMVERERkUYYrIiIiIg0wmBFREREpBEGKyIiIiKNMFgRERERaYTBioiIiEgjDFZEREREGrHpYBUTE4O//OUvMBgM8PLywpgxY3Dy5EmLGhHBvHnz4OvrC2dnZ4SGhuLYsWMWNQUFBZg+fTo8PT3h6uqKUaNGISMjw6ImOzsbkZGRUBQFiqIgMjISOTk5FjVpaWkYOXIkXF1d4enpiRkzZqCwsLBerp2IiIgaH5sOVnFxcZg2bRr27duHbdu2obi4GEOHDsW1a9fUmsWLF2PJkiVYtmwZDh48CKPRiCFDhiAvL0+tiY6OxoYNG7B27Vrs2bMHV69eRXh4OEpKStSasWPHIjk5GbGxsYiNjUVycjIiIyPV/SUlJRgxYgSuXbuGPXv2YO3atVi3bh1mz57dMF8GERER2T5pRLKysgSAxMXFiYhIaWmpGI1GWbhwoVqTn58viqLIRx99JCIiOTk54ujoKGvXrlVrzp07J3Z2dhIbGysiIsePHxcAsm/fPrUmISFBAMgvv/wiIiKbN28WOzs7OXfunFqzZs0a0ev1YjKZanwNJpNJANTqM0RERGRdNf39tukeq4pMJhMAwN3dHQCQkpKCzMxMDB06VK3R6/UICQlBfHw8ACAxMRFFRUUWNb6+vggKClJrEhISoCgKevfurdb06dMHiqJY1AQFBcHX11etGTZsGAoKCpCYmFhtmwsKCpCbm2vxIiIioqap0QQrEcGsWbMwYMAABAUFAQAyMzMBAN7e3ha13t7e6r7MzEw4OTmhdevWN63x8vKqdE4vLy+Lmornad26NZycnNSaqsTExKjjthRFgb+/f20um4iIiBqRRhOsoqKi8PPPP2PNmjWV9ul0Oov3IlJpW0UVa6qqr0tNRXPmzIHJZFJf6enpN20XERERNV6NIlhNnz4d3333HXbs2AE/Pz91u9FoBIBKPUZZWVlq75LRaERhYSGys7NvWnPx4sVK57106ZJFTcXzZGdno6ioqFJPVnl6vR5ubm4WLyIiImqabDpYiQiioqKwfv16/PjjjwgICLDYHxAQAKPRiG3btqnbCgsLERcXh379+gEAgoOD4ejoaFFz4cIFHD16VK3p27cvTCYTDhw4oNbs378fJpPJoubo0aO4cOGCWrN161bo9XoEBwdrf/FERETU6OhERKzdiOr84x//wFdffYV///vf6Ny5s7pdURQ4OzsDABYtWoSYmBisWrUKnTp1wptvvomdO3fi5MmTMBgMAICnn34amzZtwqeffgp3d3c8++yzuHz5MhITE2Fvbw8AeOCBB3D+/Hn861//AgBMmTIF7du3x/fffw+gbLqFnj17wtvbG2+99RauXLmCCRMmYMyYMXj//fdrfE25ublQFAUmk4m9V0RERI1EjX+/6/npxFsCoMrXqlWr1JrS0lKZO3euGI1G0ev1MnDgQDly5IjFcW7cuCFRUVHi7u4uzs7OEh4eLmlpaRY1ly9floiICDEYDGIwGCQiIkKys7MtalJTU2XEiBHi7Ows7u7uEhUVJfn5+bW6Jk63QERE1PjU9PfbpnusmiL2WBERETU+Nf39tukxVkRERESNCYMVERERkUYYrIiIiIg0wmBFREREpBEGKyIiIiKNMFgRERERaYTBioiIiEgjDFZEREREGmGwIiIiItIIgxURERGRRhisiIiIiDTCYEVERESkEQYrIiIiIo0wWBERERFphMGKiIiISCMMVkREREQaYbAiIiIi0giDFREREZFGGKyIiIiINMJgRURERKQRBisiIiIijTBYEREREWmEwYqIiIhIIwxWRERERBphsCIiIiLSCIMVERERkUYYrIiIiIg0wmBFREREpBEGKyIiIiKNMFgRERERaYTBioiIiEgjDFZEREREGmGwIiIiItIIgxURERGRRhisiIiIiDTCYEVERESkEQYrIiIiIo0wWBERERFphMGKiIiISCMMVkREREQaYbAiIiIi0giDFREREZFGGKyIiIiINMJgRURERKQRBqs6WL58OQICAtCiRQsEBwdj9+7d1m4SERER2QAGq1r6+uuvER0djZde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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(df['YearsExperience'], line, c='b', label='Prediction')\n",
    "plt.scatter(df['YearsExperience'], df['Salary'], marker='x', c='r', label='Actual Values')\n",
    "plt.title('Predicting Salary')\n",
    "plt.xlabel('Years of Experience')\n",
    "plt.ylabel('Salary')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
